package com.bwie.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.util.List;

import com.bwie.poi.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @Author: 秋晚
 * @Date:  2025/7/7 20:27
 * @Description: 
 **/

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "t_repairs")
public class Repairs {
    /**
     * 报修主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 报修编号
     */
    @TableField(value = "repairs_code")
    @Excel(name = "报修编号")
    private String repairsCode;

    /**
     * 报修名称
     */
    @NotBlank(message = "报修名称不能为空")
    @Excel(name = "报修名称")
    @TableField(value = "repairs_name")
    private String repairsName;

    /**
     * 类目
     */
    @Excel(name = "类目",readConverterExp = "1=水电,2=消防,3=光纤")
    @NotNull(message = "类目不能为空")
    @TableField(value = "repairs_type")
    private Integer repairsType;

    /**
     * 区域
     */
    @Excel(name = "区域",readConverterExp = "1=1号楼,2=2号楼,3=3号楼,4=4号楼,5=5号楼")
    @NotNull(message = "区域不能为空")
    @TableField(value = "repairs_area")
    private Integer repairsArea;

    /**
     * 报修人
     */
    @Excel(name = "报修人")
    @TableField(value = "repairs_user")
    private String repairsUser;

    /**
     * 故障描述
     */
    @NotBlank(message = "故障描述不能为空")
    @TableField(value = "repairs_content")
    private String repairsContent;

    /**
     * 预约时间
     */
    @TableField(value = "repairs_time")
    private Date repairsTime;

    /**
     * 承修人
     */
    @TableField(value = "repairs_user_id")
    private Long repairsUserId;

    /**
     * 1待受理 2已受理(未派单) 3已受理(已派单) 4已返回 5已完工
     */
    @TableField(value = "repairs_status")
    private Integer repairsStatus;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;


    @TableField(exist = false)
    private String typeName;

    @TableField(exist = false)
    private String recordRemarks;

    @TableField(exist = false)
    private String areaName;

    @TableField(exist = false)
    private String username;

    @TableField(exist = false)
    private List<String> urls;

    @TableField(exist = false)
    private List<Cover> coverList;
}